﻿using SisVet.ModelBindings;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using SisVet.ServicosModelo;

namespace SisVet
{
    public partial class frmServicos : Form
    {        
        ServicosDAL serv = new ServicosDAL();
        int idServico;

        public frmServicos()
        {
            InitializeComponent();

        }

  
        private void btnSalvar_Click(object sender, EventArgs e)
        { 
            try
            {
                serv.CadastrarServico(txtTipoServico.Text, Convert.ToDouble(txtQuantidade.Text), Convert.ToDouble(txtValor.Text));
                MessageBox.Show("Salvo com sucesso!");

                Utils.Utils.LimparCampos(this);
                grdServicos.DataSource = serv.ListarServicos();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ocorreu um erro ao incluir o serviço: ", ex.ToString());
            }                                              

        }

        private void frmServicos_Load(object sender, EventArgs e)
        {
            grdServicos.DataSource = serv.ListarServicos();
        }

        private void grdServicos_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            idServico = Convert.ToInt32(grdServicos.Rows[e.RowIndex].Cells[0].Value.ToString());
            txtTipoServico.Text = grdServicos.Rows[e.RowIndex].Cells[1].Value.ToString();
            txtQuantidade.Text = grdServicos.Rows[e.RowIndex].Cells[2].Value.ToString();
            txtValor.Text = grdServicos.Rows[e.RowIndex].Cells[3].Value.ToString();
        }

        private void btnEditar_Click(object sender, EventArgs e)
        {
            try
            {
                serv.AlterarServico(idServico, txtTipoServico.Text, Convert.ToDouble(txtQuantidade.Text), Convert.ToDouble(txtValor.Text));
                MessageBox.Show("Serviço alterado com sucesso!");
                grdServicos.DataSource = serv.ListarServicos();
                Utils.Utils.LimparCampos(this);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ocorreu um erro ao salvar a alteração do serviço: ", ex.ToString());
            }
        }

        private void btnExcluir_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Deseja apagar o serviço " + grdServicos.SelectedRows[0].Cells[1].Value.ToString(), "Exclusão de serviço",
                               MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                try
                {
                    serv.ExcluirServico(idServico);
                    MessageBox.Show("Serviço apagado com sucesso!");
                    grdServicos.DataSource = serv.ListarServicos();
                    Utils.Utils.LimparCampos(this);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Ocorreu um erro ao apagar o serviço: ", ex.ToString());
                }
            }
        }

    }
}
